import api from './api';
import { MagnetInfo } from '../types/magnet';

/**
 * 解析磁力链接并提取关键信息
 * @param magnetLink 磁力链接字符串
 * @returns 解析后的磁力链接信息对象
 * @throws {Error} 当链接格式无效或API调用失败时抛出错误
 */
export async function parseMagnetLink(magnetLink: string): Promise<any> {
  // 验证磁力链接格式
  if (!magnetLink.startsWith('magnet:?')) {
    throw new Error('无效的磁力链接格式，必须以"magnet:?"开头');
  }

  try {
    // 调用后端API解析磁力链接
    const response = await api.get<MagnetInfo>('api/file/magnetLinkInfo', {
      params: {
        magnetLink: magnetLink
      }
    });

    return response.data;
  } catch (err) {
    console.error('后端API解析磁力链接失败:', err);
    throw new Error('解析磁力链接失败，请检查网络连接或稍后重试');
  }
}

export async function downloadMagnetLink(magnetLink: string, fileIndex: number): Promise<void> {
  try {
    await api.get('api/file/downloadMagnetLink', {
      params:{
        magnetLink:magnetLink,
        selectDownloadIndex:fileIndex
      }
    });
  } catch (err) {
    console.error('下载磁力链接失败:', err);
    throw new Error('下载磁力链接失败，请检查网络连接或稍后重试');
  }
}